﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Infraestructura.Fachada;
using Infraestructura.Dominio;
using System.IO;

namespace pyfweb.Dinamico.Grupos
{
    public partial class Lista : System.Web.UI.Page
    {
        private IFachada fachada;

        protected void Page_Load(object sender, EventArgs e)
        {
            fachada = (IFachada)Session["fachada"];
            GenerarListaGrupos(PnlTabla);
        }

        private void GenerarListaGrupos(Panel panel)
        {
            Table table = new Table();

            Grupo[] grupos = fachada.ObtenGrupos();
            Grupo g;
            TableRow tr;
            TableCell td;
            Image img;
            Label lblName, lblValue;
            Panel panelDatos;
            HyperLink link;
            Button boton;
            string infoUrl, fotoUrl, local;

            for (int i = 0, size = grupos.Length; i < size; i++)
            {
                g = grupos[i];
                infoUrl = "/Dinamico/Grupos/Informacion.aspx?idGpo=" + g.Id;

                tr = new TableRow();
                td = new TableCell();
                //------------------------

                // Foto
                img = new Image();
                img.CssClass = "foto_" + (i % 2 == 0 ? "izq" : "der") + " fotoGrupo";

                fotoUrl = "~/Documentos/Grupos/" + g.Id + "/" + g.FotoUrl;
                local = Server.MapPath(fotoUrl);
                if (File.Exists(local))
                {
                    img.ImageUrl = fotoUrl;
                }
                else
                {
                    img.ImageUrl = "/Resources/Images/Local/nodisponible.jpg";
                }
                link = new HyperLink();
                link.NavigateUrl = infoUrl;
                link.Controls.Add(img);

                td.Controls.Add(link);

                // Datos
                panelDatos = new Panel();
                panelDatos.CssClass = "datos";

                // Nombre
                lblName = new Label();
                lblValue = new Label();
                lblName.CssClass = "bold";
                lblValue.CssClass = "normal";

                lblName.Text = "Nombre: ";
                lblValue.Text = g.Nombre;

                panelDatos.Controls.Add(lblName);
                panelDatos.Controls.Add(lblValue);

                panelDatos.Controls.Add(new LiteralControl("<br />"));

                // Descripcion
                lblName = new Label();
                lblValue = new Label();
                lblName.CssClass = "bold";
                lblValue.CssClass = "normal";

                lblName.Text = "Descripción: ";
                lblValue.Text = g.Descripcion;

                panelDatos.Controls.Add(lblName);
                panelDatos.Controls.Add(lblValue);

                panelDatos.Controls.Add(new LiteralControl("<br />"));
                panelDatos.Controls.Add(new LiteralControl("<br />"));
                panelDatos.Controls.Add(new LiteralControl("<br />"));

                // Enlace
                link = new HyperLink();
                link.Text = "Mas información";
                link.NavigateUrl = infoUrl;
                panelDatos.Controls.Add(link);

                // Botones
                if (Session["user"] != null)
                {
                    panelDatos.Controls.Add(new LiteralControl("<br />"));
                    panelDatos.Controls.Add(new LiteralControl("<br />"));
                    boton = new Button();
                    boton.Text = "Editar Grupo";
                    panelDatos.Controls.Add(boton);

                    boton = new Button();
                    boton.Text = "Eliminar Grupo";
                    panelDatos.Controls.Add(boton);
                }
                //------------------------
                td.Controls.Add(panelDatos);
                tr.Cells.Add(td);
                table.Rows.Add(tr);
            }

            table.ClientIDMode = System.Web.UI.ClientIDMode.Static;
            table.ID = "grupos";

            // Boton agregar grupo
            if (Session["user"] != null)
            {
                Button1.Visible = false;
            }

            panel.Controls.Add(table);
        }
    }
}